package com.learn.criminalintent.database

import androidx.lifecycle.LiveData
import androidx.room.Dao
import androidx.room.Insert
import androidx.room.Query
import androidx.room.Update
import com.learn.criminalintent.Crime
import java.util.UUID

/**
 * 数据访问对象（DAO）
 * @Dao注解告诉Room，CrimeDao是一个数据访问对象。
 */
@Dao
interface CrimeDao {

    @Query("SELECT * FROM crime")
    fun getCrimes(): LiveData<List<Crime>>

    @Query("SELECT * FROM crime WHERE id = (:id)")
    fun getCrime(id: UUID): LiveData<Crime?>

    // update 和 insert 函数不需要任何参数，因为它们的参数来自于crime对象。
    @Update
    fun updateCrime(crime: Crime)

    @Insert
    fun addCrime(crime: Crime)
}
